package com.bjsxt.exception1;

import java.util.Scanner;

/**
 * 哪些情况catch后面的语句不执行？
 *      1.throw e
 *      2.catch的异常类型与try中的异常类型不一致
 *      3.遇到了return语句
 *
 * 不管成功与否，某些语句必须执行
 *      使用finally语句
 *
 * 例外情况：
 *      System.exit();
 */
public class TestException3 {

    public static void main(String[] args) {

        try {
            //1.输入总分
            System.out.println("请输入总分：");
            Scanner input = new Scanner(System.in);
            int totalScore = input.nextInt();       //!!

            //2.输入人数
            System.out.println("请输入人数：");
            int number = input.nextInt();       //!!

            //3.计算平均分并输出
            int averageScore =  totalScore / number;        //!!
            System.out.println("平均分：" + averageScore);

            System.exit(0);     //退出程序（退出虚拟机）
            return;     //退出当前方法

        } catch (Exception e) {
            //1.输出自定义信息
            //System.out.println("除数为0或输入数据不是整数！");

            //2.输出系统信息
            e.printStackTrace();
            //System.out.println(e.toString());
            //System.out.println(e.getMessage());

            //3.向上抛出异常（后面的语句不再执行）
            //throw e;
        }finally {
            System.out.println("计算完毕！");
        }

        System.out.println("程序结束！");

    }
}
